#include <iostream>
#include"avltree.h"
#include<ctime>
#include <vector>


using namespace std;


template <typename Comparable>
void display_element( AvlTree<Comparable> &_tree ,int m,int n)
{   
    clock_t startTime =clock();
    _tree.findele(m,n);
    clock_t endTime =clock();
    cout << "sorting time :" << double(endTime - startTime)/ CLOCKS_PER_SEC << "s" << endl;
}

int main()
{   
/**
 * @brief 给出一个变量num，使得num为排序的总长度，通过改变num的输入，来逐步测试程序的效率
 * 测试思路，我是想通过一个有序的数组插入一个平衡树中，然后因为数组在整数上连续单调，因此在只要改变num，就可以让
 * 平衡树里包含所有0到num的数字，这样输入x，y，需要测试的K即为y-x。
 * 在一开始时我打算用一个乱序的向量作为平衡树的插入数据，但实行后我感觉这种做法并不可行。首先就是若为乱序数组，其x,y之间的
 * 数据数量就不确定，也就是说测试复杂度中的K时不确定的，这样对测试数据会有影响。
 *所以在测试时，在验证复杂度O(K+logn)时，可以先把x固定为0，然后固定增加y的大小，然后就可以测试其中K的变化，若为线性的，即可测试
 *测试N变化只需要固定x，y的差值，并且让那个x尽量靠近树的根部，是的能有计算量logN的变化。
 */
    
    AvlTree<int> a;
    int num;
    cin >> num;
    for (int b=0 ;b<num ; b++)
        a.insert(b);
    int x;
    cin >> x;
    int y;
    cin >> y;
    display_element(a,x,y);
    return 0;
};
